package org.jeecg.modules.business.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: bus_rooms_living_order
 * @Author: jeecg-boot
 * @Date:   2023-04-04
 * @Version: V1.0
 */
@Data
@TableName("bus_rooms_living_order")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="bus_rooms_living_order对象", description="bus_rooms_living_order")
public class BusRoomsLivingOrder implements Serializable {
    private static final long serialVersionUID = 1L;

	/**key*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "key")
    private String id;
	/**预定类型：1，全天；2时租*/
	@Excel(name = "预定类型：1，全天；2时租", width = 15)
    @ApiModelProperty(value = "预定类型：1，全天；2时租")
    private Integer livingType;
	/**入住时间*/
	@Excel(name = "入住时间", width = 15, format = "yyyy-MM-dd HH:mm")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "入住时间")
    private Date arrivalTime;
	/**预离时间*/
	@Excel(name = "预离时间", width = 15, format = "yyyy-MM-dd HH:mm")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "预离时间")
    private Date dueOutTime;
	/**客源:平台字典项目ID*/
	@Excel(name = "客源:平台字典项目ID", width = 15)
    @ApiModelProperty(value = "客源:平台字典项目ID")
    private String customerSource;
	/**早餐数量*/
	@Excel(name = "早餐数量", width = 15)
    @ApiModelProperty(value = "早餐数量")
    private Integer breakfastNum;
	/**午餐数量*/
	@Excel(name = "午餐数量", width = 15)
    @ApiModelProperty(value = "午餐数量")
    private Integer lunchNum;
	/**晚餐数量*/
	@Excel(name = "晚餐数量", width = 15)
    @ApiModelProperty(value = "晚餐数量")
    private Integer dinnerNum;
	/**入住天数*/
	@Excel(name = "入住天数", width = 15)
    @ApiModelProperty(value = "入住天数")
    private Integer dayCount;
	/**客人类型；1、散客；2、会员；3、协议单位；4、中介*/
	@Excel(name = "客人类型；1、散客；2、会员；3、协议单位；4、中介", width = 15)
    @ApiModelProperty(value = "客人类型；1、散客；2、会员；3、协议单位；4、中介")
    private Integer customerType;
	/**客人类型为会员时的会员id*/
	@Excel(name = "客人类型为会员时的会员id", width = 15)
    @ApiModelProperty(value = "客人类型为会员时的会员id")
    private String vipCustomerId;
	/**客人类型为协议单位时的协议单位id*/
	@Excel(name = "客人类型为协议单位时的协议单位id", width = 15)
    @ApiModelProperty(value = "客人类型为协议单位时的协议单位id")
    private String contractTeamId;
	/**选择协议单位之后选择协议合同的id*/
	@Excel(name = "选择协议单位之后选择协议合同的id", width = 15)
    @ApiModelProperty(value = "选择协议单位之后选择协议合同的id")
    private String contractTeamProtocolId;
	/**房价方案ID*/
	@Excel(name = "房价方案ID", width = 15)
    @ApiModelProperty(value = "房价方案ID")
    private String roomPriceSlnId;
    /**房价方案ID*/
	@Excel(name = "长租房房价方案ID", width = 15)
    @ApiModelProperty(value = "长租房房价方案ID")
    private String longSchemeId;
	/**中介名称*/
	@Excel(name = "中介名称", width = 15)
    @ApiModelProperty(value = "中介名称")
    private String agencyName;
	/**联系人ID*/
	@Excel(name = "联系人ID", width = 15)
    @ApiModelProperty(value = "联系人ID")
    private String contactId;
	/**担保方式；1、无担保；2、有担保；3、OTA担保*/
	@Excel(name = "担保方式；1、无担保；2、有担保；3、OTA担保", width = 15)
    @ApiModelProperty(value = "担保方式；1、无担保；2、有担保；3、OTA担保")
    private Integer warrantType;
	/**担保人ID*/
	@Excel(name = "担保人ID", width = 15)
    @ApiModelProperty(value = "担保人ID")
    private String warranter;
	/**外部订单编号*/
	@Excel(name = "外部订单编号", width = 15)
    @ApiModelProperty(value = "外部订单编号")
    private String outerOrdersNo;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
	/**创建人*/
	@Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
    private String createUser;
//	/**预定记录状态；1正常，2取消*/
//	@Excel(name = "预定记录状态；1正常，2取消", width = 15)
//    @ApiModelProperty(value = "预定记录状态；1正常，2取消")
//    private Integer bookingStatus;
	/**更新时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
	/**更新人*/
	@Excel(name = "更新人", width = 15)
    @ApiModelProperty(value = "更新人")
    private String updateUser;
	/**入住类型；1、散客预定；2、团队预定*/
	@Excel(name = "入住类型；1、散客预定；2、团队预定", width = 15)
    @ApiModelProperty(value = "入住类型；1、散客预定；2、团队预定")
    private Integer livingOrdersType;
	/**是否公付房费*/
	@Excel(name = "是否公付房费", width = 15)
    @ApiModelProperty(value = "是否公付房费")
    private Integer publicRoomFee;
	/**是否公付消费*/
	@Excel(name = "是否公付消费", width = 15)
    @ApiModelProperty(value = "是否公付消费")
    private Integer publicConsumeFee;
	/**是否公付会员费*/
	@Excel(name = "是否公付会员费", width = 15)
    @ApiModelProperty(value = "是否公付会员费")
    private Integer publicVipFee;
	/**是否公付会议费*/
	@Excel(name = "是否公付会议费", width = 15)
    @ApiModelProperty(value = "是否公付会议费")
    private Integer publicMeetingFee;
	/**团队类型中的团队名称*/
	@Excel(name = "团队类型中的团队名称", width = 15)
    @ApiModelProperty(value = "团队类型中的团队名称")
    private String teamName;
	/**领队名称*/
	@Excel(name = "领队名称", width = 15)
    @ApiModelProperty(value = "领队名称")
    private String leaderName;
	/**钟点房计费项目id*/
	@Excel(name = "钟点房计费项目id", width = 15)
    @ApiModelProperty(value = "钟点房计费项目id")
    private String hourRoomId;
	/**团队类型字典ID*/
	@Excel(name = "团队类型字典ID", width = 15)
    @ApiModelProperty(value = "团队类型字典ID")
    private String teamTypeDicId;
	/**团队人数*/
	@Excel(name = "团队人数", width = 15)
    @ApiModelProperty(value = "团队人数")
    private Integer teamPeopleNumber;
    /**接待单号*/
    @Excel(name = "接待单号", width = 15)
    @ApiModelProperty(value = "接待单号")
	private String livingOrderNo;
	/**团队id*/
	@Excel(name = "团队id", width = 15)
    @ApiModelProperty(value = "团队id")
    private Integer teamId;

    /**预约单id*/
    @Excel(name = "预约单id", width = 15)
    @ApiModelProperty(value = "预约单id")
	private String bookingOrderId;

    /**预约单id 合并之前原始BOOKING*/
    @Excel(name = "合并之前原始BOOKING", width = 15)
    @ApiModelProperty(value = "合并之前原始BOOKING")
    private String beforeMergeBookingOrderId;

    /**定价房间id*/
    @Excel(name = "定价房间id",  width = 15)
    @ApiModelProperty(value = "定价房间id")
    private String bookingRoomId;
    /**批次id*/
    @Excel(name = "批次id", width = 15)
    @ApiModelProperty(value = "批次id")
    private String batchId;

    @Excel(name = "结账类型", width = 15)
    @ApiModelProperty(value = "结账类型 -1正常入住 1结账退房 2未结退房")
    private Integer settleType;
    @Excel(name = "酒店ID", width = 15)
    @ApiModelProperty(value = "酒店Id")
    private String hotelId;
    @Excel(name = "是否联房退房 1 是，2否", width = 15)
    @ApiModelProperty(value = "是否联房退房 1 是，2否")
    private Integer isUnionSettled;
    /**第三方用戶ID*/
    @Excel(name = "第三方用戶ID", width = 15)
    @ApiModelProperty(value = "第三方用戶ID")
    private String thirdLoginUserId;

    @ApiModelProperty(value = "免打扰")
    private Boolean ddisturb;

    @ApiModelProperty(value = "免查询")
    private Boolean dquery;

    @ApiModelProperty(value = "保密房")
    private Boolean secrecy;

    @ApiModelProperty(value = "续住")
    private Boolean isStayOver;

    @ApiModelProperty(value = "换房")
    private Boolean isChangeRoom;

    @TableField(exist = false)
    private BigDecimal xiaoFei;

    @TableField(exist = false)
    private BigDecimal shouKuan;

    @TableField(exist = false)
    private BigDecimal deposit;

    // 已住几晚
    @TableField(exist = false)
    private Integer liveDayCount;

    @TableField(exist = false)
    private String teamTag;

    @TableField(exist = false)
    private Boolean isRel;

    @TableField(exist = false)
    private Boolean isTeam;

    @TableField(exist = false)
    private String relTag;

}
